\documentclass[tikz,border=20pt]{standalone}
\usepackage{forest}
\usepackage{ctex}
\usetikzlibrary{shadows}
\forestset{
  dir switch tree 2/.style={
    for tree={
      if level=1{
        edge path={
          \noexpand\path [\forestoption{edge},rounded corners=0pt] (!u.parent anchor) -- ++(6em,0em) -| ($(.child anchor)+(-5.5em,0em)$)--
          ($(.child anchor)+(-5em,0em)$)\forestoption{edge label};%第一个括号
        },
%        s sep=4em,
        for descendants={
          child anchor=west,
          align=left,
          edge path={
            \noexpand\path [\forestoption{edge},rounded corners=3pt] (!u.parent anchor) -- ++(-0.5em,0) |- (.child anchor)\forestoption{edge label};
          },
         before computing xy={
            l=12em %第二根横线
           }
        },
        before computing xy={
          l=8em %第一根横线
        },
        for tree={
          parent anchor=west,
          anchor=west,
          grow'=0,
          font=\sffamily,
          if n children=0{}{
            delay={
              prepend={[,phantom, calign with current]}
            }
          },
        },
      }{},
    },
  },
}
\tikzset{
  colour me/.style={
      draw=colour#1,
      fill=colour#1!20!white,
      text=colour#1!25!black,
  }
}





\begin{document}
\colorlet{colour0}{blue}
\colorlet{colour1}{green}
\colorlet{colour2}{red}
\colorlet{colour3}{orange}
\colorlet{colour4}{yellow}
\colorlet{colour5}{magenta}
\colorlet{colour6}{green}
\colorlet{colour7}{violet}
\colorlet{colour8}{cyan}
\colorlet{colour9}{pink}
\begin{forest}
  dir switch tree 2,
  grow'=0,
  s sep=4em,
  align=left,
  for tree={
    if level=0{
      colour me=0
    }{
      if level=1{
        node options/.wrap pgfmath arg={colour me=#1}{n()}
      }{
        node options/.wrap 2 pgfmath args={colour me=#1!#2!black}{n("!u")}{100*(n_children("!u")-n()/2)/(n_children("!u"))}
      },
    },
    rounded corners,
    thick,
    % s sep=1em,
    drop shadow,
    edge={thick}
  }
  [状语从句
    [时间状\\语从句,node options={ellipse}
      [when
      [... was/were doing ... when...“正在做某事”(I was washing my hair when you knocked at the front。你敲前门时我正在洗头发。)]
      [... was/were about to do... when...“正要...突然...”(I was about to do my homework when she walked in. 她进来的时候我正要做作业。)]
      [... was/were on the point of doing... when...“刚要做...突然...” (She was on the point of leaving home when the telephone rang. 她正要出门，这时电话响了.)]
      [...had just done ... when ...“刚一...就...”(I had just finished my report when someone knocked at the door. 我刚一完成报告就有人敲门。)]
      [hardly/scarcely...when...“刚一...就...” (I had hardly arrived at home when it rained. 我一到家就下起雨来了。)]
      ]
      [while
      [“在...期间” They were singing while we were dancing. “他们在唱歌，我们在跳舞”]
      [“然而...” He is strong while his brother is weak. “他很强壮然而他的弟弟很瘦弱”]
      ]
      [as
      [“随着...” as time goes on. “随着时间的流逝...”(As time goes on，you will understand. What lasts，lasts; what doesn't，doesn't. Time solve most things.
      %And what time cnn't solve，you have to solve by yourself
      .)]
      [“然而...” as the height increases. “随着高度的增加...”(As the height increases with a left hander at the plate however， there is more of a chance of an outside pitch.)]
      ]
      [before
      [it is has been+时间段+before+did...]
      [it will be +时间段+before+do...]
       [it was +时间段+before+did...]
      ]
      [since,below=-0.5em
      [it is/has been +时间段+since+did...]
      [it was +时间段+since+had done...]
      ]
      [not untill
      [强调句型]
      [倒装结构]
      ]
    ]
    [地点状语从句,node options={ellipse}
         [where
      [具体地点]
      [抽象含义]
      ]
      [whereever
      ]
      [nomatter where]
    ]
    [原因状语从句,node options={ellipse}
      [连接词
      [because （多用于句尾）]
      [since （多用于句首）]
      [as “由于...，鉴于...（多用于句首）”]
      [for “因为：由于，（前面有逗号）”]
      [具体地点]
      [抽象含义]
      ]
      [whereever]
      [nomatter where]
    ]
    [结果状语从句,node options={ellipse}
      [so...that...
      [so + adj+a/an 可数名词单数+that...]
      [so many/much/few/little+that...]
      ]
       [such...that...
      [such + adj+a/an 可数名词单数+that...]
      [such 可数名词复数/不可数名词+that...]
      ]
    ]
    [目的状语从句,node options={ellipse}
      [so...that...]
      [in order that...]
      [for fear that...]
      [lest...]
    ]
        [让步状语从句,node options={ellipse}
      [...although（不能倒装）]
      [...though （可倒装可不倒装）]
      [...as 必须倒装
      [Old as he is， he still energetic]
      [Try as she might，she could not solve the problem.]
      [Much you suspect him，you couldn't provide evidence.]
      [Chlid as he is， he knows a lot.]
      ]
    ]
        [条件状语从句,node options={ellipse}
      [if
      [虚拟
      [had done...“过去”]
      [did...“现在”]
      [将来
      [did]
      [should do]
      [were to do]
      ]
      ]
      [真实]
      ]
      [if...not...=until
      [从句中，谓语动词只能是肯定形式。]
      ]
      [“假如：假使”
      [in case]
      [on condition that...]
      [providing/provided that...]
      [supposing/suppose that...]
      ]
      [so long as=as long as “只要”]
    ]
        [方式状\\语从句
      [as if/as though
      [真实情况]
      [虚拟情况
      [“过去”]
      [“现在”]
      [“将来”]
      ]
      ]
    ]
        [比较状语从句,node options={ellipse}
      [than]
      [as...as...]
    ]
  ]
\end{forest}


\end{document} 